A computer network is a collection of interconnected computing devices that can exchange data and share resources. Example network devices include layer two devices that operate within the second layer of the Open Systems Interconnection (OSI) reference model, i.e., the data link layer, and layer three devices that operate within the third layer of the OSI reference model, i.e., the network layer. Network devices within computer networks often include a control unit that provides control plane functionality for the network device and hardware-based packet processors for routing or switching data units. In some cases, for example, a network device may include one or more forwarding units (also referred to as “packet forwarding engines” (PFEs)) and a switch fabric that collectively provide a data plane (also referred to as “forwarding plane”) for forwarding network traffic.
The control plane functions provided by the control unit include storing network topologies in the form of a routing information base (RIB), executing routing protocols to communicate with peer routing devices to maintain and update the RIB, and providing a management interface to allow user access and configuration of the network device. The control unit maintains routing information that represents the overall topology of the network and defines routes to destination prefixes within the network.
The control unit derives a forwarding information base (FIB) that includes a number of forwarding structures generated by the control unit in accordance with the routing information and control information. The control unit installs the forwarding structures within the data plane to programmatically configure the hardware-based packet processors. The data structures and next hop instructions that constitute the forwarding structures define an internal forwarding path for each incoming packet received by the network device. For example, to generate a route table lookup forwarding structure, the control unit selects routes defined by the network topology and maps packet key information (e.g., destination information and other select information from a packet header) to one or more specific next hop network devices and ultimately to one or more specific output interfaces of interface cards of the network device. In some cases, the control unit may install the forwarding structures including next hop instructions into respective FIBs within the forwarding units and in this way control traffic forwarding within the data plane. Bifurcating control and data plane functionality allows the FIB in each of forwarding units to be updated without degrading packet forwarding performance of the network device and allows packet forwarding to continue independent of control plane performance degradation or failure.